export default defineNuxtConfig({
  compatibilityDate: '2025-05-15',
  devtools: { enabled: true },
  ssr: true, // 
  components: [
    {
      path: "~components",
      pathPrefix: false
    }
  ],
  // 开发服务器配置
  devServer: {
    host: "0.0.0.0",
    port: 8080
  },
  // 运行时配置
  runtimeConfig: {
    public: {
      PROXY_PREFIX: process.env.NUXT_PROXY_PREFIX
    }
  },
  // 样式配置
  css: ["~/assets/init.css"],
  // 【注意】：开启page路由模式
  pages: true,
  nitro: {
    // 服务端渲染
    routeRules: {
      [`${process.env.NUXT_PROXY_PREFIX}/**`]: { // build之后必须写**不然不生效
        proxy: process.env.NUXT_SERVER_URL + "/**"
      }
    },
    // 开发环境
    devProxy: {
      [`${process.env.NUXT_PROXY_PREFIX}`]: {
        target: process.env.NUXT_SERVER_URL,
        changeOrigin: true,
        prependPath: false
      }
    }
  },
  modules: [
    "@element-plus/nuxt",
    '@pinia/nuxt',
    '@pinia-plugin-persistedstate/nuxt' // 【可选】 pnpm i @pinia-plugin-persistedstate/nuxt
  ],
  // 自动导入
  imports: {
    dirs: ['stores/**']
  },
  // 适配
  postcss: {
    plugins: {
      // 这个工具可以实现自动添加CSS3前缀
      autoprefixer: {
        overrideBrowserslist: ['last 5 version', '>1%', 'ie >=8'],
      },
      'postcss-px-to-viewport': {
        unitToConvert: 'px', // 要转化的单位
        viewportWidth: 393, // UI设计稿的宽度
        unitPrecision: 3, // 转换后的精度，即小数点位数
        propList: ['*'], // 指定转换的css属性的单位，*代表全部css属性的单位都进行转换
        viewportUnit: 'vw', // 指定需要转换成的视窗单位，默认vw
        fontViewportUnit: 'vw', // 指定字体需要转换成的视窗单位，默认vw
        selectorBlackList: [], // 指定不转换为视窗单位的类名,例如van-（vantUI组件），
        minPixelValue: 1, // 默认值1，小于或等于1px则不进行转换
        mediaQuery: true, // 是否在媒体查询的css代码中也进行转换，默认false
        replace: true, // 是否转换后直接更换属性值
        exclude: [/node_modules/], // 设置忽略文件，用正则做目录名匹配，最好不要排除node_modules 文件，排除后在项目中会发现字体不能跟随页面放大
        landscape: false, // 是否处理横屏情况
      },
    },
  }
})
